package uiMain.menuconsola;

import gestorHotel.Hotel;
import gestorHotel.habitacion.Categoria;
import gestorHotel.habitacion.Habitacion;
import gestorHotel.habitacion.Tipo;

import java.util.ArrayList;
import java.util.Scanner;

public class OpcionDeMenuModificarHabitacion extends OpcionDeMenu {

	public void ejecutar() {
		Scanner in = new Scanner(System.in);
		String h = seleccionarHotel();
		
		Hotel hotel = Main.hoteles.get(h);

		if (hotel.getHabitaciones().isEmpty()) {
			System.out.println("No hay habitaciones que modificar!");
			return;
		}
		
		System.out.println("Seleccione la habitación que desea eliminar:");
		System.out.println();
		int k = 0;
		ArrayList<Integer> opciones = new ArrayList<Integer>();
		for (int hab : hotel.getHabitaciones().keySet()) {
			System.out.println((k + 1) + ". " + hab);
			opciones.add(hab);
			++k;
		}
		
		int op2 = Integer.parseInt(in.nextLine());
		Habitacion habitacion = Main.hoteles.get(h).getHabitaciones().get(opciones.get(op2 - 1));
		
		if (confirmarAccion()) {
			Habitacion nuevaHabitacion = new Habitacion();

			nuevaHabitacion.setNumero(habitacion.getNumero());
			
			System.out.println("Seleccione una categoría:");
			k = 0;
			ArrayList<String> opciones2 = new ArrayList<String>();
			for (Categoria categoria : hotel.getCategorias().values()) {
				System.out.println((k + 1) + ". " + categoria.getNombre());
				opciones2.add(categoria.getNombre());
				++k;
			}
			
			System.out.print("Ingrese una opción: ");
			int cat = Integer.parseInt(in.nextLine());
			
			nuevaHabitacion.setCategoria(opciones2.get(cat - 1));
			
			System.out.println("Seleccione un tipo:");
			k = 0;
			opciones2 = new ArrayList<String>();
			for (Tipo t : hotel.getTipos().values()) {
				System.out.println((k + 1) + ". " + t.getNombre());
				opciones2.add(t.getNombre());
				++k;
			}
			
			System.out.print("Ingrese una opción: ");
			int tipo = Integer.parseInt(in.nextLine());
			
			nuevaHabitacion.setTipo(opciones2.get(tipo - 1));
			
			nuevaHabitacion.editar(h);
			System.out.println("La habitación ha sido modificada!");
		}
	}

	public String getDescripcion() {
		return "Modificar habitación.";
	}

}
